home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO001.dsk / FIN / EARNED.INTEREST.bas < prev    next >
BASIC Source File  |  2012-02-16  |  3KB  |  115 lines

  1. 1  REM  - ROUND OFF FUNCTION
  2. 5  DEF  FN R(X) =  INT(X *100 +.5)/100
  3. 10  PRINT "EARNED INTEREST TABLE"
  4. 20  PRINT 
  5. 29  REM  - STATEMENTS 30 TO 230 REQUEST USER INPUT
  6. 30  PRINT "PRINCIPLE";
  7. 40  INPUT P
  8. 50  PRINT "NOMINAL INTEREST RATE";
  9. 60  INPUT I
  10. 69  REM  - CONVERT PERCENT TO DECIMAL
  11. 70 I = I/100
  12. 80  PRINT "NUMBER OF DEPOSITS/WITHDRAWALS PER YEAR";
  13. 90  INPUT N1
  14. 99  REM  - DON'T ASK FOR AMOUNT IF FREQUENCY IS ZERO
  15. 100  IF N1 = 0  THEN 160
  16. 108  REM  - DEPOSITS ARE ENTERED AS A POSITIVE NUMBER
  17. 109  REM  - WITHDRAWALS ARE ENTERED AS A NEGATIVE NUMBER
  18. 110  PRINT "AMOUNT OF DEPOSIT/WITHDRAWAL";
  19. 120  INPUT R
  20. 130 N = 360
  21. 139  REM  - PRINT AT EACH DEPOSIT/WITHDRAWAL
  22. 140 L2 = N1
  23. 150  GOTO 200
  24. 160  PRINT "NUMBER OF COMPOUNDING PEROIDS PER  YEAR";
  25. 170  INPUT N
  26. 180 N1 = 0
  27. 189  REM  - PRINT FOUR TIMES PER YEAR
  28. 190 L2 = 4
  29. 200  PRINT "START WITH WHAT YEAR";
  30. 210  INPUT X
  31. 220  PRINT "END PRINTING WITH WHAT YEAR";
  32. 230  INPUT Y
  33. 239  REM  - START PRINTING AT THE BEGINNING OF A YEAR
  34. 240 X =  INT(X)
  35. 249  REM  - INITIATE RUNNING TOTALS
  36. 250 B0 = P
  37. 260 I1 = 0
  38. 270 I2 = 0
  39. 280 I3 = 0
  40. 290 K = 24
  41. 300 P1 = 4
  42. 310  FOR J0 = 1 TO  INT(Y) +1
  43. 319  REM  - START PRINTING?
  44. 320  IF J0 <X  THEN 480
  45. 329  REM  - TEST FOR END OF PAGE
  46. 330  IF K <22  THEN 450
  47. 339  REM  - SPACE TO NEXT PAGE, PRINT HEADINS (ASSUMED 24 LINES PER PAGE)
  48. 340  FOR K1 = K TO 24
  49. 350  PRINT 
  50. 360  NEXT K1
  51. 370 K = 6
  52. 380  PRINT "     EARNED INTEREST TABLE"
  53. 390  PRINT " PRINC. $";P;" AT ";I *100;"% NOMIN. FOR ";Y;" YEARS"
  54. 399  REM  - SKIP DEP/WITHDRWL HEADING IF THERE ARE NONE
  55. 400  IF N1 = 0  THEN 430
  56. 410  PRINT "REGULAR DEPST./WITHDRWL $";R;" ";N1;" TIMES PER YR."
  57. 419  REM  - K COUNTS THE NUMBER OF PRINTED LINES PER PAGE
  58. 420 K = K +1
  59. 430  PRINT " EFECTIVE INTEREST RATE "; FN R(100 *((1 +I/N) ^N -1));"% PER YEAR"
  60. 440  PRINT 
  61. 450  PRINT "YEAR ";J0
  62. 455  PRINT 
  63. 460  PRINT "BALANCE","INTRST.","ACC.INT"
  64. 465  PRINT 
  65. 480 L1 = 1
  66. 490 N2 = 1
  67. 500 P2 = 1
  68. 510  FOR J1 = 1 TO N
  69. 519  REM  - DEPOSIT/WITHDRAW ANY MORE THIS YEAR?
  70. 520  IF N2 >N1  THEN 560
  71. 529  REM  - TIME TO MAKE DEP/WTHDRW?
  72. 530  IF N2/N1 >J1/N  THEN 560
  73. 539  REM  - CALCULATE NEW BALANCE
  74. 540 B0 = B0 +R
  75. 549  REM  - COUNT DEPOSITS/WTHDRWLS MAKE PER YEAR
  76. 550 N2 = N2 +1
  77. 560 B2 = B0 *(1 +I/N)
  78. 569  REM  - I1=AMOUNT INTEREST WITH EACH COMPOUNDING PERIOD
  79. 570 I1 = B2 -B0
  80. 579  REM  - I3=AMOUNT INTEREST ACCUMULATED BETWEEN POSTING
  81. 580 I3 = I3 +I1
  82. 589  REM  - I2=TOTAL INTEREST ACCUMULATED TO DATE
  83. 590 I2 = I2 +I1
  84. 599  REM  - ROUND AT INTEREST POSTING TIME
  85. 600  IF P2/P1 >J1/N  THEN 640
  86. 610 I2 =  FN R(I2)
  87. 620 B2 =  FN R(B2)
  88. 630 P2 = P2 +1
  89. 639  REM  - TEAR TO START PRINTING?
  90. 640  IF J0 <X  THEN 710
  91. 649  REM  - TIME TO PRINT A LINE?
  92. 650  IF J1/N <L1/L2  THEN 710
  93. 660 L1 = L1 +1
  94. 670  PRINT  FN R(B2), FN R(I3), FN R(I2)
  95. 679  REM  - INTEREST POSTED, REINITIALIZE INTEREST ACCUM. BETWEEN POSTINGS
  96. 680 I3 = 0
  97. 690 K = K +1
  98. 699  REM  - TEAR NUMBER PRINTED WITH FIRST POSTING IN EACH YEAR ONLY
  99. 700  PRINT 
  100. 710 B0 = B2
  101. 719  REM  - NO MORE LINES TO PRINT IN LAST YEAR
  102. 720  IF J0 +J1/N -1 > = Y  THEN 780
  103. 730  NEXT J1
  104. 739  REM  - START PRINTING?
  105. 740  IF J0 <X  THEN 770
  106. 750  PRINT 
  107. 760 K = K +1
  108. 770  NEXT J0
  109. 780  PRINT 
  110. 789  REM  - RESTART OR END PROGRAM?
  111. 790  PRINT "CHANGE DATA AND RECOMPUTE? (1=YES, 0=NO)";
  112. 800  INPUT Z
  113. 810  PRINT 
  114. 820  IF Z = 1  THEN 20
  115. 840  PRINT "<CTRL-D>RUN HELLO"